<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        function Student(name){
            this.name=name;
        }
        var stu=new Student("alice");//通过构造函数创建出一个（实例）对象
        console.log(stu.__proto__);
        console.log(Student.prototype);
        console.log(stu.__proto__===Student.prototype);
        console.log(Student.prototype.__proto__);
        console.log(Object.prototype);
        console.log(Student.prototype.__proto__===Object.prototype);
        console.log(Object.prototype.__proto__);


        var arrs=new Array();
        // js中的最高原型指向于Object.prototype
        // js中一个数据的原型的连续的关系(层层向上找)，称之为原型链
        // 任何对象都有其原型对象，原型对象也有原型对象，对象的原型对象一直往上找，直到null为止
        // stu---->Student.prototype--->Object.prototype--->null
        // arrs--->Array.prototype--->Object.prototype--->null



        //判断对象的类型
        console.log(typeof stu);//object
        console.log(typeof arrs);//object

        //使用instanceof来判断对象是否是某个类型

        // 对象 instanceof 构造函数名称  判断对象是否是某个类型，返回的是布尔值
        console.log(stu instanceof Student);//true
        console.log(stu instanceof Array);//false
        console.log(stu instanceof Object);//true
        console.log(arrs instanceof Array);//true
        console.log(arrs instanceof Object);//true
        console.log(arrs instanceof Student);//false
        

        // console.log(typeof null);

     
    </script>
</head>
<body>
    
</body>
</html>